package jmine.tec.hydra.actions.domain;

import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import javax.persistence.Transient;

import jmine.tec.hydra.codec.Decoder;
import jmine.tec.hydra.codec.Encoder;
import jmine.tec.hydra.domain.specification.HydraSpecificationImpl;
import jmine.tec.hydra.send.Sender;
import jmine.tec.persist.annotation.Comment;
import jmine.tec.persist.annotation.DiscriminatorComment;

@Entity
@Comment(table = "HYDRA_SPEC", column = "DTYPE", value = "DISCR TABELA TESTES")
@DiscriminatorValue("99")
@DiscriminatorComment("MOCK SPEC")
public class MockHydraSpecification extends HydraSpecificationImpl {

    private Encoder encoder;

    private Sender sender;

    private Decoder decoder;

    // Codecs
    /**
     * @return o codec que transforma um arquivo bsh e um template velocity em uma mensagem xml.
     */
    @Override
    @Transient
    public Encoder getEncoder() {
        return this.encoder;
    }

    /**
     * @return o sender que grava o xml resultante em um arquivo no diretorio passado.
     */
    @Override
    @Transient
    public Sender getSender() {
        return this.sender;
    }

    /**
     * @return o decoder que transforma um arquivo xml em uma lista de serviços.
     */
    @Override
    @Transient
    public Decoder getDecoder() {
        return this.decoder;
    }

    /**
     * @param encoder the encoder to set
     */
    public void setEncoder(Encoder encoder) {
        this.encoder = encoder;
    }

    /**
     * @param sender the sender to set
     */
    public void setSender(Sender sender) {
        this.sender = sender;
    }

    /**
     * @param decoder the decoder to set
     */
    public void setDecoder(Decoder decoder) {
        this.decoder = decoder;
    }
}
